0000=nop
0001=wait
0002=goto
0002=jump
0003=shake_camera
004D=else_jump
004E=end_thread
004F=create_thread
00D6=if
0050=gosub
0051=return
0052=line
016B=fading
00d7=create_thread_wb
016A=fade
01B6=set_weather
03A4=thread
04BB=select_interior
0112=wasted_or_busted
0417=start_mission
00D8=mission_cleanup
0317=increment_mission_attempts
0111=set_wb_check_to
0459=end_thread_named

0AA0=else_gosub
0AA1=else_return
0AB1=call
0AB2=ret
059A=return_false
0485=return_true

; CLEO 4
; https://github.com/thelink2012/gta3sc/blob/36e0a3ee852159ce6e5e164f495e6d7e83bece85/config/gtasa/cleo.xml
0A8C=write_memory
0A8D=read_memory
; int 4@ = 5@ + 6@
; int 4@ = 1@ - 1
; int 0@ = 100 * 1@
; int 0@ = 8 / 2
0A92=stream_custom_script
0A93=terminate_this_custom_script
0A94=load_and_launch_custom_mission
0A95=save_this_custom_script
0A96=get_ped_pointer
0A97=get_vehicle_pointer
0A98=get_object_pointer
0A99=set_current_directory
0A9A=open_file
0A9B=close_file
0A9C=get_file_size
0A9D=read_from_file
0A9E=write_to_file
0A9F=get_this_script_struct
0AA0=gosub_if_false
0AA1=return_if_false
0AA2=load_dynamic_library
0AA3=free_dynamic_library
0AA4=get_dynamic_library_procedure
0AA5=call_function
0AA6=call_method
0AA7=call_function_return
0AA8=call_method_return
0AA9=is_game_version_original
0AAA=get_script_struct_named
0AAB=does_file_exist
0AAC=load_audio_stream
0AAD=set_audio_stream_state
0AAE=remove_audio_stream
0AAF=get_audio_stream_length
0AB0=is_key_pressed
0AB1=cleo_call
0AB2=cleo_return
0AB3=set_cleo_shared_var
0AB4=get_cleo_shared_var
0AB5=store_closest_entities
0AB6=get_target_blip_coords
0AB7=get_car_number_of_gears
0AB8=get_car_current_gear
0AB9=get_audio_stream_state
0ABA=terminate_all_custom_scripts_with_this_name
0ABB=get_audio_stream_volume
0ABC=set_audio_stream_volume
0ABD=is_car_siren_on
0ABE=is_car_engine_on
0ABF=cleo_set_car_engine_on
0AC0=set_audio_stream_looped
0AC1=load_3d_audio_stream
0AC2=set_play_3d_audio_stream_at_coords
0AC3=set_play_3d_audio_stream_at_object
0AC4=set_play_3d_audio_stream_at_char
0AC5=set_play_3d_audio_stream_at_car
0AC6=get_label_pointer
0AC7=get_var_pointer
0AC8=allocate_memory
0AC9=free_memory
0ACA=print_help_string
0ACB=print_big_string
0ACC=print_string
0ACD=print_string_now
0ACE=print_help_formatted
0ACF=print_big_formatted
0AD0=print_formatted
0AD1=print_formatted_now
0AD2=get_char_player_is_targeting
0AD3=string_format
0AD4=scan_string
0AD5=file_seek
0AD6=is_end_of_file_reached
0AD7=read_string_from_file
0AD8=write_string_to_file
0AD9=write_formatted_string_to_file
0ADA=scan_file
0ADB=get_name_of_vehicle_model
0ADC=test_cheat
0ADD=spawn_vehicle_by_cheating
0ADE=get_text_label_string
0ADF=add_text_label
0AE0=remove_text_label
0AE1=get_random_char_in_sphere_no_save_recursive
0AE2=get_random_car_in_sphere_no_save_recursive
0AE3=get_random_object_in_sphere_no_save_recursive
0AE4=does_directory_exist
0AE5=create_directory
0AE6=find_first_file
0AE7=find_next_file
0AE8=find_close
0AE9=pop_float
0AEA=get_ped_ref
0AEB=get_vehicle_ref
0AEC=get_object_ref
0AED=string_float_format
0AEE=pow
0AEF=log
0AF0=read_int_from_ini_file
0AF1=write_int_to_ini_file
0AF2=read_float_from_ini_file
0AF3=write_float_to_ini_file
0AF4=read_string_from_ini_file
0AF5=write_string_to_ini_file
0B00=delete_file
0B01=delete_directory
0B02=move_file
0B03=move_directory
0B04=copy_file
0B05=copy_directory
0B10=bit_and
0B11=bit_or
0B12=bit_xor
0B13=bit_not
0B14=mod
0B15=bit_shr
0B16=bit_shl
0B20=read_clipboard_data
0B21=write_clipboard_data

; newOpcodes
0D00=multiply_matrices
0D01=rotate_matrix_on_axis
0D02=get_matrix_x_angle
0D03=get_matrix_y_angle
0D04=get_matrix_z_angle
0D05=set_matrix_position
0D06=get_matrix_position
0D07=get_coords_offsets_relatively_to_matrix
0D08=set_matrix_rotation
0D09=copy_matrix
0D0A=get_offset_from_matrix_in_world_coords
0D0B=get_char_bone_matrix
0D0C=get_car_component_matrix
0D0D=get_car_component
0D0E=set_car_component_state
0D0F=set_car_model_alpha
0D10=set_char_model_alpha
0D11=set_object_model_alpha
0D12=set_car_component_model_alpha
0D13=set_matrix_x_rotation
0D14=set_matrix_y_rotation
0D15=set_matrix_z_rotation
0D16=set_matrix_rotation_from_quat
0D17=set_quat_from_matrix
0D18=rotate_quat_on_axis
0D19=get_normalised_quat
0D1A=multiply_quats
0D1B=get_entity_type_and_class
0D1C=normalise_vector
0D1D=interpolate_matrix
0D1E=quat_slerp
0D1F=get_component_child_component
0D20=get_component_next_component
0D21=get_component_name
0D22=get_component_world_matrix
0D23=get_component_modelling_matrix
0D24=initialise_quat
0D25=initialise_matrix
0D26=initialise_vector
0D27=copy_memory
0D28=get_vector_elements
0D29=get_quat_elements
0D2A=get_car_num_collided_entities
0D2B=get_char_num_collided_entities
0D2C=get_object_num_collided_entities
0D2D=get_local_time
0D2E=set_script_var
0D2F=get_script_var
0D30=get_char_bone
0D31=get_bone_offset
0D32=get_bone_quat
0D33=set_car_door_window_state
0D34=get_car_collided_entities
0D35=get_char_collided_entities
0D36=get_object_collided_entities
0D37=write_struct_param
0D38=read_struct_param
0D39=get_char_max_health
0D3A=get_collision_between_points
0D3B=get_colpoint_normal_vector
0D3C=get_colpoint_surface
0D3D=get_colpoint_lighting
0D3E=get_colpoint_depth
0D3F=find_intersection_between_circles
0D40=draw_shape
0D41=setup_shape_vertex
0D42=load_txd
0D43=get_txd_id
0D44=find_texture_in_txd_with_name
0D45=rotate_shape_vertices
0D46=find_texture_in_txd_with_id
0D47=get_model_txd_id
0D48=get_model_crc
0D49=string_cmp
0D4A=string_cat
0D4B=string_str
0D4C=get_string_length
0D4D=copy_string
0D4E=read_struct_offset
0D4F=set_struct_field
0D50=draw_temporary_shadow
0D51=draw_permanent_shadow
0D52=draw_temporary_light
0D53=draw_temporary_corona
0D54=draw_temporary_corona_ex
0D55=get_sun_colors
0D56=get_sun_screen_coors
0D57=get_sun_world_coors
0D58=get_sun_size
0D59=get_current_weather
0D5A=get_trafficlights_current_color
0D5B=draw_spotlight
0D5C=get_car_light_damage_status
0D5D=set_car_light_damage_status
0D5E=get_vehicle_class_and_subclass
0D5F=get_vehicle_dummy_posn
0D60=create_projectile
0D61=load_texture_from_bmp_file
;0D62=set_car_remap_texture
;0D63=set_car_custom_color
0D64=load_texture_from_png_file
0D65=print_temporary_text
0D66=print_temporary_text_ex
;0D67=set_audio_stream_position_time
;0D68=get_audio_stream_position_time
;0D69=set_audio_stream_effect
;0D6A=remove_audio_stream_effect
;0D6B=set_audio_stream_parameters
;0D6C=get_audio_stream_parameters
;0D6D=reset_audio_stream_effect
;0D6E=set_audio_stream_attribute
;0D6F=get_audio_stream_attribute
;0D70=set_3d_audio_stream_attributes
;0D71=get_3d_audio_stream_attributes
0D72=get_game_volume
0D73=get_screen_width_and_height
0D74=get_component_parent_component
0D75=get_component_num_objects
0D76=get_component_object
0D77=hide_object_atomic
0D78=get_object_atomic_flag
0D79=set_object_atomic_flag
0D7A=get_object_atomic_num_materials
0D7B=get_object_atomic_material_texture
0D7C=load_texture_from_dds_file
0D7D=clean_loaded_texture
0D7E=draw_2d_sprite
0D7F=draw_2d_sprite_with_gradient

; CLEO+
;0D4F=write_struct_offset ; see 0E28
0E00=get_car_alarm
0E01=create_object_no_save
0E02=set_car_generator_no_save
0E03=perlin_noise
0E04=get_next_weather
0E05=set_next_weather
0E06=get_rain_intensity
0E07=set_rain_intensity
0E08=is_car_script_controlled
0E09=mark_car_as_needed
0E0A=is_char_script_controlled
0E0B=mark_char_as_needed
0E0C=is_object_script_controlled
0E0D=mark_object_as_needed
0E0E=get_current_resolution
0E0F=get_fixed_xy_aspect_ratio
0E10=is_mouse_wheel_up
0E11=is_mouse_wheel_down
0E12=get_vehicle_subclass
0E13=get_entity_type
0E14=init_extended_char_vars
0E15=set_extended_char_var
0E16=get_extended_char_var
0E17=init_extended_car_vars
0E18=set_extended_car_var
0E19=get_extended_car_var
0E1A=init_extended_object_vars
0E1B=set_extended_object_var
0E1C=get_extended_object_var
0E1D=is_on_mission
0E1E=draw_texture_plus
0E1F=ease
0E20=is_on_samp
0E21=get_audio_sfx_volume
0E22=get_audio_radio_volume
0E23=get_mouse_sensibility
0E24=fix_char_ground_brightness_and_fade_in
0E25=is_on_cutscene
0E26=is_weapon_fire_type
0E27=get_angle_from_two_coords
0E28=write_struct_offset
0E29=perlin_noise_fractal
0E2A=add_cleo_blip
0E2B=remove_cleo_blip
0E2C=get_current_save_slot
0E2D=is_game_first_start
0E2E=create_render_object_to_char_bone
0E2F=delete_render_object
0E30=set_render_object_auto_hide
0E31=set_render_object_visible
0E32=set_char_coordinates_simple
0E33=get_pickup_this_coord
0E34=get_pickup_model
0E35=set_render_object_position
0E36=set_render_object_rotation
0E37=set_render_object_scale
0E38=get_pickup_pointer
0E39=get_pickup_type
0E3A=set_render_object_distortion
0E3B=get_audiostream_internal
0E3C=get_texture_from_sprite
0E3D=is_key_just_pressed
0E3E=is_button_just_pressed
0E3F=convert_3d_to_screen_2d
0E40=get_current_hour
0E41=get_current_minute
0E42=is_char_doing_task_id
0E43=get_char_task_pointer_by_id
0E44=get_char_kill_target_char
0E45=frame_mod
0E46=is_char_using_gun
0E47=is_char_fighting
0E48=is_char_fallen_on_ground
0E49=is_char_entering_any_car
0E4A=is_char_exiting_any_car
0E4B=is_char_playing_any_script_animation
0E4C=is_char_doing_any_important_task
0E4D=random_percent
0E4E=display_onscreen_timer_local
0E4F=display_onscreen_timer_with_string_local
0E50=display_onscreen_counter_local
0E51=display_onscreen_counter_with_string_local
0E52=display_two_onscreen_counters_local
0E53=display_two_onscreen_counters_with_string_local
0E54=clear_onscreen_timer_local
0E55=clear_onscreen_counter_local
0E56=set_onscreen_counter_flash_when_first_displayed_local
0E57=set_timer_beep_countdown_time_local
0E58=set_onscreen_counter_colour_local
0E59=get_trailer_from_car
0E5A=get_car_from_trailer
0E5B=get_car_dummy_coord
0E5C=get_char_health_percent
0E5D=is_cheat_active
0E5E=change_player_money
0E5F=car_horn
0E60=set_camera_control
0E61=set_car_alarm
0E62=draw_string
0E63=draw_string_ext
0E64=get_current_camera_mode
0E65=get_car_collision_intensity
0E66=get_car_collision_coordinates
0E67=is_aim_button_pressed
0E68=set_player_control_pad
0E69=set_player_control_pad_movement
0E6A=make_nop
0E6B=get_colpoint_lighting
0E6C=get_day_night_balance
0E6D=get_underwaterness
0E6E=is_select_menu_just_pressed
0E6F=stream_custom_script_from_label
0E70=get_last_created_custom_script
0E71=get_object_centre_of_mass_to_base_of_model
0E72=create_list
0E73=delete_list
0E74=list_add
0E75=list_remove_value
0E76=list_remove_index
0E77=get_list_size
0E78=get_list_value_by_index
0E79=reset_list
0E7A=get_list_string_value_by_index
0E7B=list_add_string
0E7C=list_remove_string_value
0E7D=list_remove_index_range
0E7E=reverse_list
0E7F=get_model_type
0E80=is_string_equal
0E81=is_string_comment
0E82=does_car_have_part_node
0E83=get_current_char_weaponinfo
0E84=get_weaponinfo
0E85=get_weaponinfo_models
0E86=get_weaponinfo_flags
0E87=get_weaponinfo_animgroup
0E88=get_weaponinfo_total_clip
0E89=get_weaponinfo_fire_type
0E8A=get_weaponinfo_slot
0E8B=get_char_weapon_state
0E8C=get_char_weapon_clip
0E8D=is_any_fire_button_pressed
0E8E=get_char_collision_surface
0E8F=get_char_collision_lighting
0E90=get_car_collision_surface
0E91=get_car_collision_lighting
0E92=is_char_really_in_air
0E93=is_car_really_in_air
0E94=is_object_really_in_air
0E95=simulate_object_damage
0E96=clear_char_primary_tasks
0E97=clear_char_secondary_tasks
0E98=request_priority_model
0E99=load_all_priority_models_now
0E9A=load_special_character_for_id
0E9B=unload_special_character_from_id
0E9C=get_model_by_name
0E9D=is_model_available_by_name
0E9E=get_model_doesnt_exist_in_range
0E9F=remove_all_unused_models
0EA0=set_char_second_player
0EA1=disable_second_player
0EA2=fix_two_players_separated_cars
0EA3=remove_model_if_unused
0EA4=is_char_on_fire
0EA5=get_closest_cop_near_char
0EA6=get_closest_cop_near_pos
0EA7=get_any_char_no_save_recursive
0EA8=get_any_car_no_save_recursive
0EA9=get_any_object_no_save_recursive
0EAA=set_char_arrested
0EAB=get_char_pedstate
0EAC=get_char_proofs
0EAD=get_car_proofs
0EAE=get_object_proofs
0EAF=is_char_weapon_visible_set
0EB0=get_forced_weather
0EB1=get_char_stat_id
0EB2=get_offset_from_camera_in_world_coords
0EB3=convert_direction_to_quat
0EB4=set_car_coordinates_simple
0EB5=get_char_damage_last_frame
0EB6=get_car_weapon_damage_last_frame
0EB7=is_on_scripted_cutscene
0EB8=is_radar_visible
0EB9=is_hud_visible
0EBA=get_model_ped_type
0EBB=pass_time
0EBC=generate_random_int_in_range_with_seed
0EBD=generate_random_float_in_range_with_seed
0EBE=locate_camera_distance_to_coordinates
0EBF=get_fx_system_pointer
0EC0=add_fx_system_particle
0EC1=is_fx_system_available_with_name
0EC2=set_string_upper
0EC3=set_string_lower
0EC4=string_find
0EC5=cut_string_at
0EC6=is_string_character_at
0EC7=get_fade_alpha
0EC8=get_char_random_seed
0EC9=get_car_random_seed
0ECA=get_object_random_seed
0ECB=get_char_move_state
0ECC=dont_delete_char_until_time
0ECD=dont_delete_car_until_time
0ECE=get_time_char_is_dead
0ECF=get_time_car_is_dead
0ED0=return_script_event
0ED1=set_script_event_save_confirmation
0ED2=set_script_event_char_delete
0ED3=set_script_event_char_create
0ED4=set_script_event_car_delete
0ED5=set_script_event_car_create
0ED6=set_script_event_object_delete
0ED7=set_script_event_object_create
0ED8=set_script_event_on_menu
0ED9=set_char_ignore_damage_anims
0EDA=set_script_event_char_process
0EDB=set_script_event_car_process
0EDC=set_script_event_object_process
0EDD=set_script_event_building_process
0EDE=set_script_event_char_damage
0EDF=set_script_event_car_weapon_damage
0EE0=set_script_event_bullet_impact
0EE1=get_colpoint_coordinates
0EE2=read_struct_offset_multi
0EE3=write_struct_offset_multi
0EE4=locate_char_distance_to_char
0EE5=locate_char_distance_to_car
0EE6=locate_char_distance_to_object
0EE7=locate_car_distance_to_object
0EE8=locate_car_distance_to_car
0EE9=locate_object_distance_to_object
0EEA=locate_char_distance_to_coordinates
0EEB=locate_car_distance_to_coordinates
0EEC=locate_object_distance_to_coordinates
0EED=locate_entity_distance_to_entity
0EEE=get_entity_coordinates
0EEF=get_entity_heading
0EF0=get_coord_from_angled_distance
0EF1=perlin_noise_fractal_2d
0EF2=perlin_noise_fractal_3d
0EF3=lerp
0EF4=clamp_float
0EF5=is_car_owned_by_player
0EF6=set_car_owned_by_player
0EF7=clamp_int
0EF8=get_model_info
0EF9=get_car_animgroup
0EFA=get_char_fear
0EFB=is_car_convertible
0EFC=get_car_value
0EFD=get_car_pedals
0EFE=get_loaded_library
0EFF=get_char_simplest_active_task